跳到主要内容

架构总览

这里对 Arbiter 的整体技术架构进行介绍。

组件

基本上,它现在由 4 个组件组成,observer、scheduler、executor 和一个名为 “abctl” 的命令行工具。

Observer

Observer 用于收集各种数据(metric/log/trace),生成 OBI 对象,并作为 CRD 存储在 Kubernetes 集群内。

详细信息请参阅 Observer

Scheduler 扩展

Scheduler 是构建在 Kubernetes 默认调度程序之上的替代调度程序。它包含了 Kubernetes 的默认调度器,并为 Arbiter 提供了一个扩展点来扩展。

对于每个 Arbiter 调度器扩展,它都会提供一个用于 Pod 调度的上下文,并且可以参考上面的 OBI 对象。 因此,它将具有静态和运行时数据,包括来自 OBI 的 Pod、节点、指标/日志/跟踪,并允许用户使用 javascript 编写调度逻辑。

详细信息参考 Scheduler Extension

Executor

如果满足任何规则,Executor 就是动作触发器。让用户根据来自执行程序的事件调用其他服务或编写自定义控制器。

详细信息参考 Executor

abctl 工具

一个让开发人员或管理员更轻松地查看来自 Arbiter 的资源数据的工具,并且还可以集成此工具以从自定义脚本执行自动任务。

组件间通信

组件之间的关系如下。

相互作用